window.userName = $('._buryDot-userEmail')[0] ? $('._buryDot-userEmail').text() :'游客';
var page = 1;
var order = 1;
$(function($) {
	//分类--satrt
	//第0步：解析数据
	var seLevelObj = JSON.parse($('._all_category_index_string').val())
	var newseLevelObj = {}
	newseLevelObj.extend = function(obj) {
		for(var key in obj) {
			var newkey = key.split('-')[1]
			this[newkey] = obj[key]
		}
	}
	newseLevelObj.extend(seLevelObj);
	//第一步：获取地址栏的一级分类和二级分类对应的id	
	var firIdStr = location.search.split('&')[0].split('=')[1];//一级分类id
	firIdStr = newseLevelObj[firIdStr] ? firIdStr : 0;
	var secId = 0;//二级分类id
	if(location.search) {
		//当前一级分类对应的二级分类
		var curChild = newseLevelObj[firIdStr] ? newseLevelObj[firIdStr].children : 0;
		if(location.search.split('&')[1]) {
			//分类页面二级分类id
			secId = location.search.split('&')[1].split('=')[1];			
		}
	}
	//第二步：根据对应的id渲染页面--面包屑
	breakTag(firIdStr, secId);
	//第三步：显示一级分类
	createFirstCate(seLevelObj);
	//第四步：显示所有的二级分类
	showAllSecTag();
	//初次显示二级分类
	$('._categorySecond div[id=' + firIdStr+']').addClass('active fade in');	
	$('._categorySecond div[id=' + firIdStr + ']>a').first().addClass('active').siblings().removeClass('active');
	//点击事件	
	$(document)
	.on('click', '._categoryFirst li a', function() {//第五步：一级分类点击事件
		var cur = $(this);
			var firstId = cur.attr('_firid');
			$('._categorySecond div').removeClass('active fade in');
			$('._categorySecond div[id=' + firstId+']').addClass('active fade in');
			$('._categorySecond div#' + firstId + '>a').first().addClass('active').siblings().removeClass('active');
			breakTag(firstId);			
			postData({
				firId: firstId
			});
			//TODO 埋点 1.3
			zhuge.track('分类_查看',{
				'一级分类':cur.html()
			})
	})
	.on('click', '._categorySecond div a', function() {//第六步：二级分类点击事件
		var cur = $(this);
		var firstElem = $('._categoryFirst .active a');
			var firstId = firstElem.attr('_firid') || '0';
			var secondId = $(this).attr('_secid');
			breakTag(firstId, secondId, $(this));
			postData({
				firId: firstId,
				secId: secondId
			});
			$(this).addClass('active').siblings().removeClass('active');
			//TODO 埋点 1.3
			zhuge.track('分类_查看',{
				'一级分类':firstElem.text(),
				'二级分类':cur.text()
			})
		})
	.on('click', 'a._dropDownMore', function() {//二级分类，更多按钮点击事件
		var $active = $('._categorySecond a.active')
		if($(this).attr('data-drop') == "down") {
			$(this).attr({
				'data-drop': 'up'
			})
			$(this).html('更多&and;')
			$('._categorySecond').attr({
				'style': 'padding-right:60px;overflow:hidden;'
			})
		} else if($(this).attr('data-drop') == "up") {
			$(this).attr({
				'data-drop': 'down'
			})
			$(this).html('更多&or;')
			$('._categorySecond').attr({
				'style': 'max-height:120px;overflow:hidden;padding-right:60px'
			})
		}
	})
	.on('click', '._order_opt', function(e) {//切换排序点击事件
		var that = $(this);
		order = that.attr('data-type');
		$('._order_opt').parent().removeClass('active')
		that.parent().addClass('active')
		var fistId = $('._categoryFirst>.active>a').attr('_firid') || 0;
		var secId = $('._categorySecond>.active>.active').attr('_secid') || 0;
		$.post('/category/ajaxCategoryList.html', {
			page: 1,
			pagesize: 1,
			cid: fistId,
			tid: secId,
			order: order
		}, getData)
	});
	//首页进入
	if(location.search) {
		postData({
			'firId': $('._categoryFirst .active a').attr('_firid'),
			'secId': $('._categorySecond a.active').attr('_secid')
		})
	} else {
		postData({}); //发送一个空对象
		$('._categoryFirst li').eq(1).addClass('active');
		$('._categorySecond .active a').first().addClass('active');
	}	
	//---------函数----------------------------------------------------
	/**
	 * 创建一级分类函数
	 * @param {Object} seLevelObj 分类对象
	 */
	function createFirstCate(seLevelObj) {
		for(var firstId in seLevelObj) {
			var liHtml = createTag({
				'tag': 'li',
				'attribute': {
					'role': 'presentation'
				}
			});
			var aHtml = createTag({
				'tag': 'a',
				'attribute': {
					'href': '#' + seLevelObj[firstId]["id"],
					'data-toggle': 'tab',
					'aria-expanded': 'true',
					'_firId': seLevelObj[firstId]["id"]
				},
				'text': seLevelObj[firstId]["name"]
			});
			$(liHtml).append(aHtml);
			if(seLevelObj[firstId]["id"] == firIdStr) {
				$(liHtml).addClass('active');
			}
			$('._categoryFirst').append(liHtml);
		}
	}

	/**
	 * 创建面包屑标签，如果有一级/二级则添加
	 * @param {Object} firIdStr		一级标签的id
	 * @param {Object} secId	二级标签的id
	 */
	function breakTag(firIdStr, secId, thisElement) {
		//thisElement?console.log(thisElement.text()):''
		//初始化
		$('._breakTag').html('<i class="fa fa-map-marker"></i><a href="/" title="首页">首页</a>');
		if(firIdStr && secId) {
			$('._breakTag').append(createTag({
				'tag': 'a',
				'attribute': {
					'href': "/category/index.html?cid=" + firIdStr
				},
				'text': newseLevelObj[firIdStr] ? newseLevelObj[firIdStr].name : '所有行业'
			}));
			$('._breakTag').append(createTag({
				'tag': 'a',
				'attribute': {
					'class': 'active'
				},
				'text': newseLevelObj[firIdStr] ? (newseLevelObj[firIdStr].children[secId] ? newseLevelObj[firIdStr].children[secId].name : "全部") : thisElement.text()
			}));
		} else {
			$('._breakTag').html('<i class="fa fa-map-marker"></i><a href="/" title="首页">首页</a>' + (newseLevelObj[firIdStr] ? "<a href=/category/index.html?cid="+firIdStr+" class='active'>"+newseLevelObj[firIdStr].name+"</a>" : "<a href='/category/index.html' class='active'>所有行业</a>") );
		}
	}
	/**
	 * 显示二级分类函数
	 * 说明：当curChild为空对象则只添'全部'标签
	 * @param {Object} curChild 当前一级分类对应的二级分类对象
	 * @param {string} secId 当前选中的二级分类的id
	 */
	function showAllSecTag() {
		var fragment = document.createDocumentFragment();
		var allSecDivHtml = createTag({
			'tag': 'div',
			'attribute': {
				'role': 'tabpanel',
				'class': 'tab-pane fade',
				'id': 0,
				'style': 'max-height:120px; padding-right:80px',
			}
		});
		$(allSecDivHtml).append(createTag({
			'tag': 'a',
			//'attribute': {
			//'_secId': 0,
			//},
			'text': '全部'
		}));
		fragment.appendChild(allSecDivHtml);
		var allASecTag = [];
		for(var key in newseLevelObj) {
			var curFir = newseLevelObj[key];
			var curChild = curFir.children;
			var divHtml = createTag({
				'tag': 'div',
				'attribute': {
					'role': 'tabpanel',
					'class': 'tab-pane fade',
					'id': curFir.id,
					'style': 'max-height:120px; padding-right:80px'
				}
			});
			$(divHtml).append(createTag({
				'tag': 'a',
				//'attribute': {
					//'_secId': 0,
				//},
				'text': '全部'
			}));
			var aHtmls = [];
			for(var childkey in curChild) {
				var aHtml = createTag({
					'tag': 'a',
					'attribute': {
						'_secId': curChild[childkey].id,
					},
					'text': curChild[childkey].name
				});
				aHtmls.push(aHtml);
				allASecTag.push($(aHtml).clone());
			}
			$(divHtml).append(aHtmls);
			fragment.appendChild(divHtml);
		}
		$(allSecDivHtml).append(allASecTag);
		$('._categorySecond').append(fragment);
		$('div#' + firIdStr).addClass('active in');
		$('div#' + firIdStr + '>[_secid=' + secId + ']').addClass('active');
		//当高度大于三行，就隐藏
		if($('._categorySecond').height() > 120) {
			$('._categorySecond').attr({
				'style': 'max-height:120px;overflow:hidden;padding-right:60px'
			})
			$('._categorySecond').append('<a href="javascript:void(0);" class="more _dropDownMore" data-drop="down">更多&or;</a>')
		} else {
			$('._dropDownMore').remove()
			$('._categorySecond').attr({
				'style': 'overflow:hidden;'
			})
		}
	}
	/**
	 * 创建标签，传入一个对象，返回一个完整的标签
	 * @param {Object} attribute  标签的属性
	 * @param {string} html	 标签内部的html
	 * @param {string} text	标签名称
	 */
	function createTag(obj) {
		if(typeof obj != 'object') {
			return false
		} else {
			var aHtml = document.createElement(obj.tag)
			$(aHtml).attr(obj.attribute || "")
			if(obj.html)
				$(aHtml).html(obj.html)
			if(obj.text)
				$(aHtml).text(obj.text)
			return aHtml
		}
	}
	/**
	 * ajax请求渲染数据
	 * @param {Object} obj.firId 一级分类id
	 * @param {Object} obj.secId 二级分类id
	 */
	function postData(obj) {
		
		$.post('/category/ajaxCategoryList.html', {
			page: 1,
			pagesize: 20,
			cid: obj.firId || 0,
			tid: obj.secId || 0,
			order: order
		}, getData)
	}

	/**
	 * ajax回调函数
	 * @param {Object} data 成功时的对象
	 */
	function getData(data) {
		if(data.status == 200) {
			$('body').animate({
					'scrollTop': 0
				}, 100)
				//渲染数据
				//console.log(data.data.list[6].tag_string)
			for(var i = 0, len = data.data.list.length; i < len; i++) {
				if(data.data.list[i].tag_string) {
					var str = data.data.list[i].tag_string
					data.data.list[i].tag_string = str.split(',')
				}
			}
			var html = template('category_list_content', data.data);
			document.getElementById('category_list_div').innerHTML = html;
			//分 页
			if(data.data.totalpage != 1) {
				$('._page').pagination({
					pageCount: data.data.totalpage, //总共20页
					current: data.data.page, //默认，当前第一页
					coping: true,
					callback: function(data) { //每次翻页出发改函数
						$.post('/category/ajaxCategoryList.html', {
							page: data.getCurrent(),
							pagesize: 20,
							cid: $('._categoryFirst>li.active>a').attr('_firid') || 0,
							tid: $('._categorySecond>.active>.active').attr('_secid') || 0,
							order: order
						}, getData)
					}
				})
			} else { //只有一页时
				$('._page').html('');
			}
		} else {
			toastr.error(data.msg,null,opts);
		}
	}
});